package com.rc.saas.tenant.mapper.invoice;


import com.github.pagehelper.PageInfo;
import com.rc.saas.tenant.common.base.BaseMapper;
import com.rc.saas.tenant.model.invoice.TenantInvoiceInfo;
import com.rc.saas.tenant.model.invoice.TenantInvoiceInfoExample;
import com.rc.saas.tenant.search.elec.StationInvoiceSearch;
import com.rc.saas.tenant.vo.invoice.StationInvoiceDetailExportVo;
import com.rc.saas.tenant.vo.invoice.StationInvoiceExportVo;
import com.rc.saas.tenant.vo.invoice.StationInvoiceVo;

import java.util.List;

public interface TenantInvoiceInfoMapper extends BaseMapper<String, TenantInvoiceInfo, TenantInvoiceInfoExample> {
    /**
     * 桩群发票互联统计信息(个人订单按发票统计，企业和互联（反向）订单按订单统计)
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceVo> listPageCountStationInVoice(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票个人订单统计
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceVo> listPageCountStationInVoice1(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票企业订单统计
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceVo> listPageCountStationInvoice2(StationInvoiceSearch stationInvoiceSearch);

//    List<StationInvoiceVo> listPageTotalCountStationInVoice(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票个人订单统计详情
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceDetailExportVo> listStationInvoiceDetail1(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票企业订单统计详情
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceDetailExportVo> listStationInvoiceDetail2(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票互联订单统计详情
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceDetailExportVo> listStationInvoiceDetail(StationInvoiceSearch stationInvoiceSearch);

    List<Long> listInvoiceStationId(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票个人订单统计导出
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceExportVo> listCountStationInVoice1(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票企业订单统计导出
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceExportVo> listCountStationInVoice2(StationInvoiceSearch stationInvoiceSearch);

    /**
     * 桩群发票互联订单统计导出
     * @param stationInvoiceSearch
     * @return
     */
    List<StationInvoiceExportVo> listCountStationInVoice(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceVo> listPageCountOperatorStationInVoice1(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceVo> listPageCountOperatorStationInVoice2(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceVo> listPageCountOperatorStationInVoice(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceDetailExportVo> listOperatorStationInvoiceDetail1(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceDetailExportVo> listOperatorStationInvoiceDetail2(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceDetailExportVo> listOperatorStationInvoiceDetail(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceExportVo> listCountOperatorStationInVoice1(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceExportVo> listCountOperatorStationInVoice2(StationInvoiceSearch stationInvoiceSearch);

    List<StationInvoiceExportVo> listCountOperatorStationInVoice(StationInvoiceSearch stationInvoiceSearch);
}